﻿using System;
namespace ArtemisExtensions
{
    public interface IEventManager : IEventListener
    {

        /// <summary>
        /// Attempt to add IEventHandler.
        /// </summary>
        /// <remarks>Ensure that there are no two handlers with the same code.</remarks>
        /// <returns>True if successful, false if not</returns>
        bool TryAddHandler(IEventHandler eh);

        void QueueEvent(EV_EventHandler eh, int evCode, IEventInfo e);

        /// <summary>
        /// Handle the next event in the queue
        /// </summary>
        bool Tick();

        void TriggerEvent();

        void Initialize();
    }
}
